home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / modules / nessus-2.2.8.mo / usr / lib / nessus / plugins / ids_evasion.nasl < prev    next >
Text File  |  2005-01-14  |  4KB  |  143 lines

  1. #
  2. # This script was written by Michel Arboi <arboi@alussinan.org> 
  3. # and Renaud Deraison
  4. #
  5. # The HTTP IDS evasion mode comes from Whisker, by RFP.
  6. # It has been moved to http_ids_evasion.nasl
  7. #
  8. # The TCP IDS evasion techniques are largely inspired by
  9. # the work from Tom Ptacek and Tim Newsham.
  10. #
  11. # GPL, blah blah blah
  12. # See the Nessus Scripts License for details
  13. #
  14.  
  15. if(description)
  16. {
  17.  script_id(10889);
  18.  script_version ("$Revision: 1.22 $");
  19.  
  20.  name["english"] = "NIDS evasion";
  21.  name["francais"] = "Anti NIDS (dΘtecteur d'intrusions)";
  22.  
  23.  script_name(english:name["english"],
  24.             francais:name["francais"]);
  25.  
  26.  desc["english"] = "
  27. This plugin configures Nessus for NIDS evasion (see the 'Prefs' panel).
  28. NIDS evasion options are useful if you want to determine
  29. the quality of the expensive NIDS you just bought.
  30.  
  31. TCP Evasion techniques :
  32. - Split : send data one byte at a time. This confuses
  33.   NIDSes which do not perform stream reassembly
  34.   
  35. - Injection : same as split, but malformed TCP packets
  36.   containing bogus data are sent between normal packets. 
  37.   Here, a 'malformed' tcp packet means a legitimate TCP packet 
  38.   with a bogus checksum.
  39.   This confuses NIDSes which perform stream reassembly but do
  40.   not accurately verify the checksum of the packets or
  41.   which do not determine if the remote host actually
  42.   receives the packets seen ;
  43.   
  44. - Short TTL : same as split, but a valid TCP packets
  45.   containing bogus data are sent between normal packets.
  46.   These packets have a short (N-1), meaning that if
  47.   the NIDS is on a gateway, it will see these packets
  48.   go through, but they will not reach the target
  49.   host.
  50.   This confuses NIDSes which perform stream reassembly
  51.   but do not accurately check if the packet can actually
  52.   reach the remote host or which do not determine if the 
  53.   remote host actually receives the packets seen ;
  54.  
  55. - Fake RST : each time a connection is established, Nessus
  56.   will send a RST packet with a bogus tcp checksum or
  57.   a bogus ttl (depending on the options you chose above),
  58.   thus making the IDS believe the connection was closed
  59.   abruptly.
  60.   This confuses badly written NIDSes which believe
  61.   anything they see.
  62.   
  63. Warning: those features are experimental and some 
  64. options may result in false negatives!
  65. This plugin does not do any security check.
  66.  
  67. Risk factor : None";
  68.  
  69.  
  70.  script_description(english:desc["english"]);
  71.  
  72.  summary["english"] = "NIDS evasion options";
  73.  summary["francais"] = "Options anti NIDS";
  74.  script_summary(english:summary["english"],
  75.                francais:summary["francais"]);
  76.  
  77.  script_category(ACT_SETTINGS);
  78.  
  79.  script_copyright(english:"This script is Copyright (C) 2002 Michel Arboi / Renaud Deraison");
  80.  family["english"] = "Settings";
  81.  family["francais"] = "Configuration";
  82.  script_family(english:family["english"], francais:family["francais"]);
  83.  
  84.  script_add_preference(name:"TCP evasion technique", type:"radio", value:"none;split;injection;short ttl");
  85.  
  86.  script_add_preference(name:"Send fake RST when establishing a TCP connection",
  87.      type:"checkbox", value:"no");
  88.  exit(0);
  89. }
  90.  
  91. pref =  script_get_preference("TCP evasion technique");
  92. if(!pref)exit(0);
  93.  
  94. if(pref == "none")exit(0);
  95.  
  96.  
  97. if(pref == "none;split;injection;short ttl")exit(0);
  98.  
  99. if(pref == "split")
  100. {
  101.  set_kb_item(name:"NIDS/TCP/split", value:"yes");
  102.  
  103.   if (! get_kb_item("/Settings/Whisker/NIDS"))
  104.     set_kb_item(name:"/Settings/Whisker/NIDS", value: "9");
  105.  
  106. w="TCP split NIDS evasion function is enabled. Some tests might
  107. run slowly and you may get some false negative results";
  108.  security_note(port:0, protocol:"tcp", data:w);
  109. }
  110.  
  111. if(pref == "injection")
  112. {
  113.  set_kb_item(name:"NIDS/TCP/inject", value:"yes");
  114. w="TCP inject NIDS evasion function is enabled. Some tests might
  115. run slowly and you may get some false negative results.";
  116.  security_note(port:0, protocol:"tcp", data:w);
  117. }
  118.  
  119.  
  120. if(pref == "short ttl")
  121.  {
  122.  set_kb_item(name:"NIDS/TCP/short_ttl", value:"yes");
  123. w="TCP short ttl NIDS evasion function is enabled. Some tests might
  124. run slowly and you may get some false negative results.";
  125.  security_note(port:0, protocol:"tcp", data:w);
  126.  }
  127.  
  128.  
  129. pref = script_get_preference("Send fake RST when establishing a TCP connection");
  130. if(!pref) exit(0);
  131.  
  132. if(pref == "no")exit(0);
  133.  
  134.  
  135.  
  136. if(pref == "yes") {
  137.  set_kb_item(name:"NIDS/TCP/fake_rst", value:"yes");
  138. w="TCP fake RST NIDS evasion function is enabled. Some tests might
  139. run slowly and you may get some false negative results.";
  140.  security_note(port:0, protocol:"tcp", data:w);
  141. }
  142.  
  143.